package com.platform.modules.prj.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;

import java.io.Serializable;
import java.util.Date;

/**
 * 实体
 *
 * @author Zhouxw
 * @date 2019-06-20 17:17:28
 */
@Data
@TableName("PRJ_PROJECT")
@ApiModel(value = "项目基础实体类", description = "项目基础信息")
public class PrjProjectEntity implements Serializable {
    private static final long serialVersionUID = 1L;


    @TableId
    @ApiModelProperty(value = "项目ID")
    private String prjId;

    @NotBlank
    @ApiModelProperty(value = "工程项目名称")
    private String prjName;

    @ApiModelProperty(value = "项目编号（保存生成）")
    private String prjCode;

    @NotBlank
    @ApiModelProperty(value = "项目所在省份")
    private String provinceNum;

    @NotBlank
    @ApiModelProperty(value = "项目所在地市")
    private String cityNum;

    @NotBlank
    @ApiModelProperty(value = "项目所在区县")
    private String countyNum;

    @NotBlank
    @ApiModelProperty(value = "项目地点")
    private String address;

    @NotBlank
    @ApiModelProperty(value = "总面积（m2）")
    private double totalArea;

    @NotBlank
    @ApiModelProperty(value = "总投资额（万元）")
    private double totalInvestment;

    @NotBlank
    @ApiModelProperty(value = "是否装配式")
    private String isZps;

    @NotBlank
    @ApiModelProperty(value = "是否被动房")
    private String isBdf;

    @NotBlank
    @ApiModelProperty(value = "是否重点项目")
    private String isImportant;

    @NotBlank
    @ApiModelProperty(value = "建设单位ID")
    private String buildCorpId;

    @NotBlank
    @ApiModelProperty(value = "建设单位名称")
    private String buildCorpName;

    @NotBlank
    @ApiModelProperty(value = "建设单位法定代表人")
    private String buildComartiperson;

    @NotBlank
    @ApiModelProperty(value = "建设单位项目负责人")
    private String buildProjectLeaderId;

    @ApiModelProperty(value = "建设单位项目负责人姓名")
	@TableField(exist = false)
    private String buildProjectLeaderName;

    @NotBlank
    @ApiModelProperty(value = "建设单位联系电话")
    private String buildCorpLinkPhone;
    
    @NotBlank
    @ApiModelProperty(value = "施工单位ID")
    private String sgCorpId;
    @NotBlank
    @ApiModelProperty(value = "施工单位名称")
    private String sgCorpName;
    @NotBlank
    @ApiModelProperty(value = "施工单位法定代表人")
    private String sgComartiperson;
    @NotBlank
    @ApiModelProperty(value = "施工单位项目负责人")
    private String sgProjectLeaderId;
    @ApiModelProperty(value = "施工单位项目负责人姓名")
	@TableField(exist = false)
    private String sgProjectLeaderName;
    @NotBlank
    @ApiModelProperty(value = "施工单位联系电话")
    private String sgCorpLinkPhone;


    @NotBlank
    @ApiModelProperty(value = "设计单位ID")
    private String sjCorpId;
    @NotBlank
    @ApiModelProperty(value = "设计单位名称")
    private String sjCorpName;
    @NotBlank
    @ApiModelProperty(value = "设计单位法定代表人")
    private String sjComartiperson;
    @NotBlank
    @ApiModelProperty(value = "设计单位项目负责人")
    private String sjProjectLeaderId;
    @ApiModelProperty(value = "设计单位项目负责人姓名")
	@TableField(exist = false)
    private String sjProjectLeaderName;
    @NotBlank
    @ApiModelProperty(value = "设计单位联系电话")
    private String sjCorpLinkPhone;


    @NotBlank
    @ApiModelProperty(value = "审图单位ID")
    private String stCorpId;
    @NotBlank
    @ApiModelProperty(value = "审图单位名称")
    private String stCorpName;
    @NotBlank
    @ApiModelProperty(value = "审图单位法定代表人")
    private String stComartiperson;
    @NotBlank
    @ApiModelProperty(value = "审图单位项目负责人")
    private String stProjectLeaderId;
    @ApiModelProperty(value = "审图单位项目负责人姓名")
	@TableField(exist = false)
    private String stProjectLeaderName;
    @NotBlank
    @ApiModelProperty(value = "审图单位联系电话")
    private String stCorpLinkPhone;


    @NotBlank
    @ApiModelProperty(value = "监理单位ID")
    private String jlCorpId;
    @NotBlank
    @ApiModelProperty(value = "监理单位名称")
    private String jlCorpName;
    @NotBlank
    @ApiModelProperty(value = "监理单位法定代表人")
    private String jlComartiperson;
    @NotBlank
    @ApiModelProperty(value = "监理单位项目负责人")
    private String jlProjectLeaderId;
    @ApiModelProperty(value = "监理单位项目负责人姓名")
	@TableField(exist = false)
    private String jlProjectLeaderName;
    @NotBlank
    @ApiModelProperty(value = "监理单位联系电话")
    private String jlCorpLinkPhone;


    @NotBlank
    @ApiModelProperty(value = "勘察单位ID")
    private String kcCorpId;
    @NotBlank
    @ApiModelProperty(value = "勘察单位名称")
    private String kcCorpName;
    @NotBlank
    @ApiModelProperty(value = "勘察单位法定代表人")
    private String kcComartiperson;
    @NotBlank
    @ApiModelProperty(value = "勘察单位项目负责人")
    private String kcProjectLeaderId;
    @ApiModelProperty(value = "勘察单位项目负责人姓名")
	@TableField(exist = false)
    private String kcProjectLeaderName;
    @NotBlank
    @ApiModelProperty(value = "勘察单位联系电话")
    private String kcCorpLinkPhone;


    @NotBlank
    @ApiModelProperty(value = "检测单位ID")
    private String jcCorpId;
    @NotBlank
    @ApiModelProperty(value = "检测单位名称")
    private String jcCorpName;
    @NotBlank
    @ApiModelProperty(value = "检测单位法定代表人")
    private String jcComartiperson;
    @NotBlank
    @ApiModelProperty(value = "检测单位项目负责人")
    private String jcProjectLeaderId;
    @ApiModelProperty(value = "检测单位项目负责人姓名")
	@TableField(exist = false)
    private String jcProjectLeaderName;
    @NotBlank
    @ApiModelProperty(value = "检测单位联系电话")
    private String jcCorpLinkPhone;

    @NotBlank
    @ApiModelProperty(value = "预拌混凝土单位ID")
    private String ybhntCorpId;
    @NotBlank
    @ApiModelProperty(value = "预拌混凝土单位名称")
    private String ybhntCorpName;
    @NotBlank
    @ApiModelProperty(value = "预拌混凝土单位法定代表人")
    private String ybhntComartiperson;
    @NotBlank
    @ApiModelProperty(value = "预拌混凝土单位项目负责人")
    private String ybhntProjectLeaderId;
    @ApiModelProperty(value = "预拌混凝土单位项目负责人姓名")
	@TableField(exist = false)
    private String ybhntProjectLeaderName;
    @NotBlank
    @ApiModelProperty(value = "预拌混凝土单位联系电话")
    private String ybhntCorpLinkPhone;

    @NotBlank
    @ApiModelProperty(value = "勘察设计单位ID")
    private String kcsjCorpId;
    @NotBlank
    @ApiModelProperty(value = "勘察设计单位名称")
    private String kcsjCorpName;
    @NotBlank
    @ApiModelProperty(value = "勘察设计单位法定代表人")
    private String kcsjComartiperson;
    @NotBlank
    @ApiModelProperty(value = "勘察设计单位项目负责人")
    private String kcsjProjectLeaderId;
    @ApiModelProperty(value = "勘察设计单位项目负责人姓名")
	@TableField(exist = false)
    private String kcsjProjectLeaderName;
    @NotBlank
    @ApiModelProperty(value = "勘察设计单位联系电话")
    private String kcsjCorpLinkPhone;

    @NotBlank
    @ApiModelProperty(value = "结构类型")
    private String jglx;
    @NotBlank
    @ApiModelProperty(value = "工程描述")
    private String gcms;
    @NotBlank
    @ApiModelProperty(value = "工程施工许可证号")
    private String gcsgxkzh;
    @NotBlank
    @ApiModelProperty(value = "层数")
    private String cs;
    @NotBlank
    @ApiModelProperty(value = "施工图审查批号")
    private String sgtscph;
   
    @NotBlank
    @ApiModelProperty(value = "工程项目类别")
    private String prjCategory;

    @NotBlank
    @ApiModelProperty(value = "工程性质")
    private String prjQuality;

    @NotBlank
    @ApiModelProperty(value = "工程用途")
    private String prjPurpose;

    @NotBlank
    @ApiModelProperty(value = "项目建设规模")
    private String prjScale;
    
    @NotBlank
    @ApiModelProperty(value = "立项文号")
    private String prjApprovalNum;

    @NotBlank
    @ApiModelProperty(value = "立项来源")
    private String prjApprovalSource;

    @NotBlank
    @ApiModelProperty(value = "项目批复机关")
    private String prjApprovalDeptName;

    @NotBlank
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(
            pattern = "yyyy-MM-dd",
            timezone = "GMT+8"
    )
    @ApiModelProperty(value = "项目批复时间")
    private Date prjApprovalTime;

    @NotBlank
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(
            pattern = "yyyy-MM-dd",
            timezone = "GMT+8"
    )
    @ApiModelProperty(value = "计划开工时间")
    private Date planStartTime;

    @NotBlank
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(
            pattern = "yyyy-MM-dd",
            timezone = "GMT+8"
    )
    @ApiModelProperty(value = "计划竣工时间")
    private Date planCompleteTime;

    @ApiModelProperty(value = "创建者ID")
    private String createUserId;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "项目申报状态")
    private String declareStatus;
}
